Создать таблицу auth_db.users

Развертывание структуры учетных записей пользователей.

Author

Services Task & Simulation Framework Documentation

Published

July 13, 2026

NoteКраткая карточка задачи
  • Репозиторий / Компонент: auth-service (База auth_db, контур Identity & Auth / SECURITY).
  • Целевая СУБД: PostgreSQL v15+.
  • Ссылка на Метод: Спецификация POST /register
  • Статус: Готово к реализации

WarningОграничение публичной документации

В открытом доступе представлена демонстрационная версия задачи. В настоящей публичной документации отображены не все шаги, технические сценарии и приватные эндпоинты для системы цифровых симуляторов бизнес-процессов.

  • Полная спецификация метода: Доступна только во внутреннем контуре разработки (Confluence / Swagger Enterprise).
  • Для получения доступа: Обратитесь к системному аналитику или Product Owner вашей команды.

  • Инструкция по шагам: Выполнить DDL-миграцию для создания таблицы учетных записей пользователей (users) для контроля Сценариев 1, 2 и 3 [2026-07-02]. В соответствии со спецификацией безопасности, поле password_hash предназначено для хранения строго криптографического хэша (Argon2id/Bcrypt), сырые текстовые значения паролей в СУБД не допускаются.

Контекст

Гибко останавливать и запускать сервисы для экономии ОЗУ

Так как у вас общий docker-compose.yaml, вам не нужно тушить вообще все контейнеры. Сами контейнеры на Python (FastAPI) весят в ОЗУ копейки (по 30-50 МБ). Память (8–10 ГБ) сжирает именно Ollama, когда загружает веса конкретной модели внутрь процессора. Чтобы высвободить ресурсы, вам нужно управлять контейнерами точечно с помощью встроенных команд Docker Compose. Кафка в это время будет надежно удерживать сообщения в очередях. Шаг 1: Обработка картинок чеков (Модель Llama Vision) Вы запускаете контейнер чеков. Он просит Ollama загрузить тяжелую llama3.2-vision:11b (7.9 ГБ).

  1. В ваших Dockerfile упаковывается только код Python-сервиса (FastAPI, uvicorn, requests). Они весят всего около 100–150 МБ.
  2. Сами нейросети (веса моделей llama3.2-vision, qwen2.5 и whisper) хранятся и исполняются внутри самой Ollama, которая установлена у вас прямо на Ubuntu (на хосте). Python-контейнеры просто отправляют туда HTTP-запросы. Если вы не скачали модели в Ollama заранее, при первом же запросе от Go-сервиса Python-контейнеры выдадут ошибку 404 Not Found (модель не найдена). Поскольку вы планируете останавливать и запускать контейнеры для очистки ОЗУ, вот полный чек-лист команд, которые нужно выполнить на целевой Ubuntu-машине один раз перед запуском всего пайплайна

Шаг 1: Скачиваем модели в саму Ollama на Ubuntu

Зайдите на вашу Ubuntu-машину через терминал и выполните три команды по очереди. Они скачают веса моделей в глобальный кэш Ollama (в папку ~/.ollama):


# 1. Скачиваем мультимодальную модель для картинок чеков (размер ~7.9 ГБ)
ollama pull llama3.2-vision:11b

# 2. Скачиваем аудио-модель для распознавания голоса (размер ~1.5 ГБ)
ollama pull whisper-base

# 3. Скачиваем легкую текстовую модель для парсинга и мата (размер ~2.0 ГБ)
ollama pull qwen2.5:3b

Шаг 2: Bash-скрипт для поочередного запуска (Автоматизация ротации)

Чтобы не контролировать память руками и не вводить команды старта/остановки, создайте в вашей папке ~/fridge-ai-cluster файл run_pipeline.sh:


#!/bin/bash

# Функция для принудительной выгрузки любой модели из ОЗУ Ollama
unload_model() {
    echo "🧹 Выгружаем модель $1 из оперативной памяти..."
    curl -s http://localhost:11434/api/generate -d "{\"model\": \"$1\", \"keep_alive\": 0}" > /dev/null
}

echo "🏁 Запуск ИИ-кластера обработки чеков и голоса..."

# === ЭТАП 1: ОБРАБОТКА ФОТОГРАФИЙ ЧЕКОВ ===
echo "📸 Запуск распознавания чеков (Llama Vision)..."
docker compose up -d ai-receipt
echo "⏳ Ожидание завершения обработки картинок в Kafka (нажмите Ctrl+C для перехода к следующему этапу)..."
# Здесь можно поставить sleep, например sleep 60, или нажать Enter в терминале
read -p "Нажмите [Enter], когда картинки чеков будут обработаны..."

docker compose stop ai-receipt
unload_model "llama3.2-vision:11b"


# === ЭТАП 2: РАСПОЗНАВАНИЕ ГОЛОСА ===
echo "🎙 Запуск Speech-to-Text (Whisper)..."
docker compose up -d ai-voice
read -p "Нажмите [Enter], когда аудиосообщения переведутся в текст..."

docker compose stop ai-voice
unload_model "whisper-base"


# === ЭТАП 3: СТРУКТУРИРОВАНИЕ И ФИЛЬТРАЦИЯ МАТА ===
echo "📝 Запуск парсинга текста и очистки от мата/спама (Qwen)..."
docker compose up -d ai-parser ai-filter
read -p "Нажмите [Enter], когда финальные данные запишутся в холодильник..."

docker compose stop ai-parser ai-filter
unload_model "qwen2.5:3b"

echo "✅ Пайплайн завершен. Вся оперативная память Ubuntu полностью свободна!"

chmod +x run_pipeline.sh